package com.example.hdwx.myapplication.untils;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.widget.ImageView;


import com.example.hdwx.myapplication.R;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

/**
 * Created by hudongwx on 17-1-9.
 */
public class ImageLoaderUtils {

    static ImageLoader imageLoader;
    public static void setImageLoader(Context context, String url, ImageView imageView){
        imageLoader = ImageLoader.getInstance();
        File cacheDir = StorageUtils.getOwnCacheDirectory(context,"mnt/sdcard");
        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(300,300)
                .threadPoolSize(6)
                .discCache(new UnlimitedDiscCache(cacheDir))
                .build();
        imageLoader.init(configuration);
        //设置图片的缓存
        DisplayImageOptions options =new DisplayImageOptions.Builder()
                //设置加载前的默认图片
                .showImageOnLoading(R.mipmap.ic_launcher)
                //设置图片Uri为空或是错误的时候显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                //设置图片加载/解码过程中错误时候显示的图片
                .showImageOnFail(R.mipmap.ic_launcher)
                //设置下载的图片是否缓存在内存中
                .cacheInMemory(true)
                //设置下载的图片是否缓存在SD卡中
                .cacheOnDisc(true)

                .displayer(new RoundedBitmapDisplayer(8))//是否设置为圆角，弧度为多少
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片的一种缩放格式
                .build();
        imageLoader.displayImage(url,imageView,options);
    }
    public static void setImageRriusLoader(Context context, String url, ImageView imageView){
        imageLoader = ImageLoader.getInstance();
        File cacheDir = StorageUtils.getOwnCacheDirectory(context,"mnt/sdcard");
        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(300,300)
                .threadPoolSize(6)
                .discCache(new UnlimitedDiscCache(cacheDir))
                .build();
        imageLoader.init(configuration);
        //设置图片的缓存
        DisplayImageOptions options =new DisplayImageOptions.Builder()
                //设置加载前的默认图片
                .showImageOnLoading(R.mipmap.ic_launcher)
                //设置图片Uri为空或是错误的时候显示的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                //设置图片加载/解码过程中错误时候显示的图片
                .showImageOnFail(R.mipmap.ic_launcher)
                //设置下载的图片是否缓存在内存中
                .cacheInMemory(true)
                //设置下载的图片是否缓存在SD卡中
                .cacheOnDisc(true)

                .displayer(new RoundedBitmapDisplayer(360))//是否设置为圆角，弧度为多少
                .imageScaleType(ImageScaleType.IN_SAMPLE_INT)//设置图片的一种缩放格式
                .build();
        imageLoader.displayImage(url,imageView,options);
    }

    public static Bitmap netPicToBmp(String src) {
        try {
            Log.d("FileUtil", src);
            URL url = new URL(src);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(input);

            return bitmap;
        } catch (IOException e) {
            return null;
        }
    }
}
